#include <vector>
#include <fstream>
#include <iostream>

using namespace std;

// John 可以下达的命令
int cmd(int d/*温差*/) {
  /*当温差大于 0 的时候，升温*/
  if (d > 0) {
    return 1;
  }
  else if (d < 0) {
    return -1;
  }
  else {
    return 0;
  }
}

int main(int argc, char const *argv[])
{
  /* code */
  // 处理输入
  int n = 0;           // 牛的头数

  ifstream ifs("AirCowditioning.in");
  ifs >> n;

  vector<int> target(n, 0);  // 期望的温度
  vector<int> current(n, 0); // 当前的温度

  for (int i = 0; i < n; ++i) {
    ifs >> target[i];
  }

  for (int i = 0; i < n; ++i) {
    ifs >> current[i];
  }

  vector<int> diff(n, 0);

  for (int i = 0; i < n; ++i) {
    diff[i] = target[i] - current[i];
  }

  // 计算每一个牛棚里，它期望的温度和当前温度的差值
  // 不断的调整温度，直到所有的温度都满足
  // diff 中所有的元素变成 0

  // diff 中第一个不为 0 的元素的位置
  // 第一个需要调整温度的牛棚的编号
  int firstNonZero = 0; 
  int result = 0; // 调整温度的次数

  while (true) {
    // 不断的调整温度，直到所有奶牛都满足
    // 在 diff 中找到第一个不为 0 的位置
    while (firstNonZero < n && diff[firstNonZero] == 0) {
      ++firstNonZero;
    }

    // firstNonZero
    if (firstNonZero == n) {
      // 这里代表什么？
      // diff 里所有元素都是 0
      // 所有牛都满意了
      break;
    }

    // firstNonZero
    // 第一个需要调整温度的位置
    // 从 firstNonZero 的这个位置往后继续找，找能和 firstNonZero 一起调整的牛栏
    int pos = firstNonZero;
    while (pos + 1 < n && cmd(diff[pos + 1]) == cmd(diff[firstNonZero])) {
      // pos + 1 这个位置可以和 firstNonZero 这个位置一起调整一次温度
      ++pos;
    }

    // 从 firstNonZero 开始到 pos 位置结束的所有牛棚，可以集体调整一次温度
    for (int i = firstNonZero; i <= pos; ++i) {
      if (diff[i] < 0) {
        ++diff[i];
      }
      else {
        --diff[i];
      }
    }

    ++result;
  }

  ofstream ofs("AirCowditioning.out");
  ofs << result;
  return 0;
}
